package wish_wall

import (
	"reward-server/forms/request"
	"reward-server/handler"
	"reward-server/service"
	"reward-server/utils"

	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
)

// New函数用于处理创建心愿墙的请求
func New(c *gin.Context) {
	// 定义请求参数结构体
	var req request.WishWallReq
	// 验证请求数据
	if err := c.ShouldBind(&req); err != nil {
		// 如果验证失败，记录错误日志并返回错误信息
		zap.S().Errorf("验证数据出错:%v", err)
		handler.HandleValidator(err, c)
		return
	}
	// 调用服务层创建心愿墙
	err := service.NewWishWallService().Create(req)
	// 如果创建失败，返回错误信息
	if err != nil {
		utils.GinReply(c, "操作失败", 500, gin.H{})
		return
	}
	// 如果创建成功，返回成功信息
	utils.GinReply(c, "操作成功", 200, gin.H{})
	return
}

// List函数用于处理获取心愿墙列表的请求
func List(c *gin.Context) {
	// 定义请求参数结构体
	var req request.WishSearchReq
	// 验证请求数据
	if err := c.ShouldBindQuery(&req); err != nil {
		// 如果验证失败，记录错误日志并返回错误信息
		zap.S().Errorf("验证数据出错:%v", err)
		handler.HandleValidator(err, c)
		return
	}
	// 调用服务层获取心愿墙列表
	res, err := service.NewWishWallService().GetList(req)
	if err != nil {
		// 如果获取失败，返回错误信息
		utils.GinReply(c, "查询失败", 500, gin.H{})
		return
	}
	// 返回成功信息
	utils.GinReply(c, "查询成功", 200, res)
	return
}
